#ifndef __DEBUG_LOG__H__
#define __DEBUG_LOG__H__
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <time.h>
#include <string.h>


#ifdef __cplusplus
extern "C" {
#endif


/**
 * @brief Logs an informational message.
 *
 * @param suppress Logging control:
 *                 - 0: Do not print.
 *                 - 1: Print normally.
 *                 - 2: Print with timestamp.
 * @param format Format string (printf-style).
 * @param ... Variable arguments.
 */
void log_info(int suppress, const char* format, ...);

/**
 * @brief Logs an error message.
 *
 * @param suppress Logging control:
 *                 - 0: Do not print.
 *                 - 1: Print normally.
 *                 - 2: Print with timestamp.
 * @param format Format string (printf-style).
 * @param ... Variable arguments.
 */
void log_error(int suppress, const char* format, ...);

/**
 * @brief Logs a debug message.
 *
 * @param suppress Logging control:
 *                 - 0: Do not print.
 *                 - 1: Print normally.
 *                 - 2: Print with timestamp.
 * @param format Format string (printf-style).
 * @param ... Variable arguments.
 */
void log_debug(int suppress, const char* format, ...);

#ifdef __cplusplus
}
#endif
#endif  //!__DEBUG_LOG__H__